﻿using System;

namespace BorgExt
{
    [Flags]
    public enum QualificationState : long
    {
        None                                      = 0L,
        QualificationMissing                      = 1L,
        EventHandlerQualificationMissing          = 2L,
        ContractNameAlreadyExists                 = 4L,
        ContractAssemblyCouldNotBeLoaded          = 8L,
        ContractNoSlotDefinitions                 = 16L,
        SlotDefinitionContractNotQualified        = 32L,
        SlotDefinitionAlreadyExists               = 64L,
        SlotDefinitionTypeNotInContractAssembly   = 128L,
        ParamDefinitionSlotDefinitionNotQualified = 256L,
        ParamDefinitionAlreadyExists              = 512L,
        ParamDefinitionTypeNotFound               = 1024L,
        ParamDefinitionDefaultValueNotAssignable  = 2048L,
        PluginNameAlreadyExists                   = 4096L,
        PluginAssemblyCouldNotBeLoaded            = 8192L,
        PluginNoExtensions                        = 16384L,
        ExtensionPluginNotQualified               = 32768L,
        ExtensionNameAlreadyExists                = 65536L,
        ExtensionTypeNotInPluginAssembly          = 131072L,
        ExtensionInvalidConstructor               = 262144L,
        ExtensionNoPlugs                          = 524288L,
        PlugExtensionNotQualified                 = 1048576L,
        PlugNameAlreadyExists                     = 2097152L,
        PlugSlotDefinitionNotFound                = 4194304L,
        PlugInterfaceNotImplemented               = 8388608L,
        PlugParamMissing                          = 16777216L,
        PlugParamNotQualified                     = 33554432L,
        ParamPlugNotQualified                     = 67108864L,
        ParamNameAlreadyExists                    = 134217728L,
        ParamNotAssignable                        = 268435456L,
        SlotExtensionNotQualified                 = 536870912L,
        SlotNameAlreadyExists                     = 1073741824L,
        SlotSlotDefinitionNotFound                = 2147483648L,
        ExtensionOnCreatedMethodNotFound          = 4294967296L,
        ExtensionOnDestroyedMethodNotFound        = 8589934592L,
        PlugOnPluggedMethodNotFound               = 17179869184L,
        PlugOnUnpluggedMethodNotFound             = 34359738368L,
        PlugOnSelectedMethodNotFound              = 68719476736L,
        PlugOnDeselectedMethodNotFound            = 137438953472L,
        SlotOnOpenedMethodNotFound                = 274877906944L,
        SlotOnPluggedMethodNotFound               = 549755813888L,
        SlotOnSelectedMethodNotFound              = 1099511627776L,
        SlotOnClosedMethodNotFound                = 2199023255552L,
        SlotOnUnpluggedMethodNotFound             = 4398046511104L,
        SlotOnDeselectedMethodNotFound            = 8796093022208L,
    }
}

